package core

//go get github.com/mattn/go-sqlite3
import (
	"database/sql"
	"fmt"

	_ "github.com/mattn/go-sqlite3" // 匿名导入以注册驱动
)

type Sqlite3 struct {
	DBName string
	DB     *sql.DB
}

func NewSqlite3(dbname string) *Sqlite3 {
	return &Sqlite3{DBName: dbname, DB: nil}
}

// ./my.db
func (s *Sqlite3) OpenSqlite3(dbname string) error {
	db, err := sql.Open("sqlite3", fmt.Sprintf("./%s", dbname))
	if err != nil {
		s.DB = nil
		return err
	}
	s.DB = db
	return nil
}
func (s *Sqlite3) CloseDB() error {
	return s.DB.Close()
}
func (s *Sqlite3) QuerySQL(sql string) (*sql.Rows, error) {
	return s.DB.Query(sql)
}
func (s *Sqlite3) ExecSQL(sql string) (sql.Result, error) {
	return s.DB.Exec(sql)
}
func (s *Sqlite3) PrepareSQL(sql string) (*sql.Stmt, error) {
	return s.DB.Prepare(sql)
}
func (s *Sqlite3) CloseRows(rows *sql.Rows) error {
	return rows.Close()
}
func (s *Sqlite3) CloseStmt(stmt *sql.Stmt) error {
	return stmt.Close()
}
